﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;

namespace PW.Mini.SlepowronskiJ.Wyglad
{
    public partial class OgraniczenieDanychForm : Form
    {

        private SortedDictionary<DateTime, double[]> dane;
        private int indeksDataPoczatkowa = -1;
        private int liczbaDanych = 0;

        public OgraniczenieDanychForm()
        {
            InitializeComponent();
        }

        public void ZaladujDane(SortedDictionary<DateTime, double[]> dane, int stan)
        {
            this.dane = dane;
            this.dataPoczatkowaComboBox.Items.Clear();
            foreach (DateTime dt in dane.Keys)
            {
                double[] wartosci = dane[dt];
                string wartosc = wartosci[stan].ToString();
                wartosc = wartosc.Contains(".") ? wartosc.Substring(0, Math.Min(wartosc.IndexOf(".") + 5, wartosc.Length)): wartosc;
                wartosc = wartosc.Contains(",") ? wartosc.Substring(0, Math.Min(wartosc.IndexOf(",") + 5, wartosc.Length)) : wartosc;
                this.dataPoczatkowaComboBox.Items.Add(dt.ToShortDateString() + "   -   " + wartosc);
            }
            this.dataPoczatkowaComboBox.SelectedIndex = 0;
            this.wielkoscZestawuNumericUpDown.Minimum = 1;
            this.wielkoscZestawuNumericUpDown.Maximum = dane.Count;
            this.wielkoscZestawuNumericUpDown.Value = this.wielkoscZestawuNumericUpDown.Maximum;
        }

        private void dataPoczatkowaComboBox_SelectedIndexChanged(object sender, EventArgs e)
        {
            this.wielkoscZestawuNumericUpDown.Maximum = dane.Count - this.dataPoczatkowaComboBox.SelectedIndex;
        }

        private void okButton_Click(object sender, EventArgs e)
        {
            if (this.dataPoczatkowaComboBox.SelectedIndex == -1)
            {
                MessageBox.Show("Wybierz początkową datę zestawu!");
                return;
            }

            indeksDataPoczatkowa = this.dataPoczatkowaComboBox.SelectedIndex;
            liczbaDanych = (int)this.wielkoscZestawuNumericUpDown.Value;
            this.DialogResult = DialogResult.OK;
            this.Close();
        }

        private void anulujButton_Click(object sender, EventArgs e)
        {
            this.DialogResult = DialogResult.Cancel;
            this.Close();
        }

        public int IndeksDataPoczatkowa
        {
            get { return indeksDataPoczatkowa; }
        }

        public int LiczbaDanych
        {
            get { return liczbaDanych; }
        }

    }
}
